This invention relates to the field of networks and, more specifically, to the switching connections in networks.
Networks may contain a collection of clients that are interconnected by transmission lines to enable the transfer of data between them. Data is typically transmitted in the form of packets that are made up of smaller data cells. Packets include an address field that specifies the destination for which the data is intended. A network typically includes multiple access points (e.g., servers) that may switch and/or route packets between transmission lines to regulate data traffic between clients on the network. A network that is based on packet switching uses a network layer that defines an official packet format and protocol called IP (Internet Protocol). This type of network is referred to as an IP network.
A server on the network may have a controller and a switch that facilitate the movement of data passed through the server. When data arrives on an incoming transmission line, the switch must choose an outgoing line on which to forward the data based on its packet address field. Servers may also be used to connect different types of networks together. For example, one type of data that may be carried on a network is voice data. At one time, voice data was exclusively carried on a Public Switched Telephone Network (PSTN) using a copper wire transmission line that connected multiple clients through the PSTN to a central office.
Later, other types of networks were developed using higher bandwidth transmission lines that enabled greater amounts of data to be transmitted over a given time. For example, some companies use a private branch exchange network (PBX) having higher bandwidth transmission lines such as T1/E1, T3/E3, or fiber physical interfaces. A PBX uses service modules at network access points to facilitate the transmission of data, such a voice, over the network.
Voice processing modules are particular types of service modules used at network access points that connect to the PBX through transmission lines. These voice processing modules include a pool of Digital Signal Processors (DSP) to perform various voice processing functions to handle multiple voice calls that may be active in the network. Voice processing functions may include, for examples, adaptive differential pulse code modulation (ADPCM) and voice compression (e.g., CS-ACELP). ADPCM utilizes an algorithm by which analog voice samples are encoded into high quality digital signals. Voice compression is a process using algorithms such as Conjugated Structure Algebraic Code-Excited Linear Prediction (CS-ACELP) to compress a data stream into a smaller file for transmission over a network.
FIG. 1 illustrates one prior voice processing allocation scheme. A voice processing module may include multiple DSPs to perform various voice processing functions on voice calls. The algorithms for the various voice processing functions, however, may require different amounts of DSP processing power measured in millions of instructions per second (MIPS). For example, a voice compression algorithm, such as CS-ACELP, may perform more MIPS and, thus, may require much more DSP processing power than an ADPCM algorithm.
Each voice processing function may be allocated to a DSP based on the available MIPS of a DSP at the time when a call comes in. For example, a voice processing module may have six DSPs with each DSP capable of processing ten ADPCM algorithms or one CS-ACELP algorithm. If twenty nine ADPCM algorithms are originally required to be processed, then DSP 1 may be allocated two ADPCM algorithms, DSP-2 may be allocated four ADPCM algorithms, DSP-3 may be allocated four ADPCM algorithms, DSP-4 may be allocated three ADPCM algorithms, DSP-5 may be allocated ten ADPCM algorithms, and DSP-6 may be allocated six ADPCM algorithms. As such, DSP-5 is at full capacity and the other DSPs have extra MIPS capacity.
One problem with such a voice processing scheme is that the initial allocation that is set up gets altered in a random fashion due to the asynchronous nature of voice call arrival and completion activity in the PBX. For example, if a new call comes in requiring a CS-ACELP algorithm (e.g., equivalent to approximately ten ADPCM algorithms) to be processed, then the voice processing module would not be able to process the algorithm because none of the DSP currently have the MIPS capacity to handle the new voice call. As such, no DSPs are available to process newly incoming voice calls that may need higher MIPS for running certain compression algorithms.
In addition, there may be one or more DSPs that are underutilized because they are processing, for example, fewer ADPCM algorithms than they can handle. This may prevent the achievement of the maximum number of simultaneous active voice calls that use different voice algorithms from operating on a voice processing module.
The present invention pertains to a method and apparatus for data management. In one embodiment, the method may include transmitting an active data from a first client to a second client through a first processor. The method may also include switching the transmission of the active data from the first processor to a second processor without significantly interfering with the active data. The switching may be substantially transparent to the first and the second clients.
In one embodiment, the apparatus may include a switch, a first processor to operate on a current active data transmission, a second processor to operate on the current active data transmission and a central processing unit. The central processing unit may be coupled to the switch and to the first and the second processors. The central processing unit may selectively couple the switch to the first and the second processors based on a first control signal. The current active data may be switched from the first processor to the second processor without significantly interfering with the current active data transmission.